<!-- 
1. 引入 vue.js
2. 编写页面(视图)
3. 编写 vue 实例 -->
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- 1. 引入 vue.js 相对路径引入-->
    <script src="./js/vue.js"></script>

    <!-- 生产环境版本，优化了尺寸和速度 绝对路径引入-->
    <!-- <script src="https://cdn.jsdelivr.net/npm/vue@2"></script> -->
    <title>Document</title>
</head>


<body>
    <!-- 2. 编写页面(视图) 创建一个视图 -->
    <div id="app">
        <!-- 插值表达式 -->
        <!-- 要写在挂载节点内部 -->
        <!-- 将父组件中的list传递给子组件 -->
        <com1 :form-data="list" @on-ok="change"></com1>
        <!-- 思考：子组件如何向父组件传值？emit 自定义事件 -->
    </div>

</body>

</html>
<script>

    // 需求：全局组件 
    //com1 组件名称
    //1、定义全局组件 
    Vue.component("com1", {
        // 模板，
        //""拼接，遵循外双内单
        template: "<button @click='returnData'>当前你点击了{{count}}次{{formData}}</button>",
        data() {
            return {
                count: 0
            }
        },
        // 接口父组件传递过来的数据
        props: ["formData"],
        methods: {
            returnData() {
                this.count++
                //"on-ok"表示的是自定义事件，this.count表示的是子组件向父组件传递的值
                this.$emit("on-ok", this.count)
            }
        }
    })

    new Vue({
        el: "#app", //element 元素 对应操作的元素 必传
        data() { //存放变量数据
            return {
                msg: "Hello Vue.js", //定义个msg变量，
                list: [
                    {
                        uername: "123"
                    },
                    {
                        uername: "123"
                    },
                    {
                        uername: "123"
                    }
                ]
            }
        },
        methods: {
            change(e) {
                console.log("子组件向父组件传递的值为：" + e)
            }
        }
        //对象之间间隔需要用逗号进行分割
    })

// 排查错误
</script>